home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 1996 March / Amiga-CD 1996 #3.iso / amiga_technologies / include_i / dos / filehandler.i < prev    next >
Text File  |  1996-01-19  |  5KB  |  130 lines

  1.     IFND    DOS_FILEHANDLER_I
  2. DOS_FILEHANDLER_I SET    1
  3. **
  4. **    $VER: filehandler.i 36.5 (9.8.92)
  5. **    Includes Release 40.16
  6. **
  7. **    device and file handler specific code for AmigaDOS
  8. **
  9. **    (C) Copyright 1986-1995 ESCOM AG
  10. **        All Rights Reserved
  11. **
  12.  
  13.     IFND      EXEC_TYPES_I
  14.     INCLUDE "exec/types.i"
  15.     ENDC    ; EXEC_TYPES_I
  16.  
  17.     IFND      EXEC_PORTS_I
  18.     INCLUDE "exec/ports.i"
  19.     ENDC    ; EXEC_PORTS_I
  20.  
  21.     IFND      DOS_DOS_I
  22.     INCLUDE "libraries/dos.i"
  23.     ENDC    ; DOS_DOS_I
  24.  
  25.  
  26. * The disk "environment" is a longword array that describes the
  27. * disk geometry.  It is variable sized, with the length at the beginning.
  28. * Here are the constants for a standard geometry.
  29.  
  30.  
  31.  
  32.  STRUCTURE DosEnvec,0
  33.     ULONG de_TableSize         ; Size of Environment vector
  34.     ULONG de_SizeBlock         ; in longwords: standard value is 128
  35.     ULONG de_SecOrg         ; not used; must be 0
  36.     ULONG de_Surfaces         ; # of heads (surfaces). drive specific
  37.     ULONG de_SectorPerBlock  ; not used; must be 1
  38.     ULONG de_BlocksPerTrack  ; blocks per track. drive specific
  39.     ULONG de_Reserved         ; DOS reserved blocks at start of partition.
  40.     ULONG de_PreAlloc         ; DOS reserved blocks at end of partition
  41.     ULONG de_Interleave         ; usually 0
  42.     ULONG de_LowCyl         ; starting cylinder. typically 0
  43.     ULONG de_HighCyl         ; max cylinder. drive specific
  44.     ULONG de_NumBuffers         ; Initial # DOS of buffers.
  45.     ULONG de_BufMemType         ; type of mem to allocate for buffers
  46.     ULONG de_MaxTransfer     ; Max number of bytes to transfer at a time
  47.     ULONG de_Mask         ; Address Mask to block out certain memory
  48.     LONG  de_BootPri         ; Boot priority for autoboot
  49.     ULONG de_DosType         ; ASCII (HEX) string showing filesystem type;
  50.                  ; 0X444F5300 is old filesystem,
  51.                  ; 0X444F5301 is fast file system
  52.     ULONG de_Baud         ; Baud rate for serial handler
  53.     ULONG de_Control         ; Control word for handler/filesystem
  54.     ULONG de_BootBlocks      ; Number of blocks containing boot code
  55.  
  56.     LABEL DosEnvec_SIZEOF
  57.  
  58. * these are the offsets into the array
  59. * DE_TABLESIZE is set to the number of longwords in the table minus 1
  60.  
  61. DE_TABLESIZE    EQU    0    ; minimum value is 11 (includes NumBuffers)
  62. DE_SIZEBLOCK    EQU    1    ; in longwords: standard value is 128
  63. DE_SECORG    EQU    2    ; not used; must be 0
  64. DE_NUMHEADS    EQU    3    ; # of heads (surfaces). drive specific
  65. DE_SECSPERBLK    EQU    4    ; not used; must be 1
  66. DE_BLKSPERTRACK EQU    5    ; blocks per track. drive specific
  67. DE_RESERVEDBLKS EQU    6    ; unavailable blocks at start.    usually 2
  68. DE_PREFAC    EQU    7    ; not used; must be 0
  69. DE_INTERLEAVE    EQU    8    ; usually 0
  70. DE_LOWCYL    EQU    9    ; starting cylinder. typically 0
  71. DE_UPPERCYL    EQU    10    ; max cylinder.     drive specific
  72. DE_NUMBUFFERS    EQU    11    ; starting # of buffers.  typically 5
  73. DE_MEMBUFTYPE    EQU    12    ; type of mem to allocate for buffers.
  74. DE_BUFMEMTYPE    EQU    12    ; same as above, better name
  75.                 ; 1 is public, 3 is chip, 5 is fast
  76. DE_MAXTRANSFER    EQU    13    ; Maximum number of bytes to transfer at a time
  77. DE_MASK        EQU    14    ; Address Mask to block out certain memory
  78. DE_BOOTPRI    EQU    15    ; Boot priority for autoboot
  79. DE_DOSTYPE    EQU    16    ; ASCII (HEX) string showing filesystem type
  80.                 ; 0X444F5300 is old filesystem,
  81.                 ; 0X444F5301 is fast file system
  82. DE_BAUD    EQU    17    ; Baud rate for serial handler
  83. DE_CONTROL    EQU    18    ; Control word for handler/filesystem
  84. DE_BOOTBLOCKS    EQU    19    ; Number of blocks containing boot code
  85.  
  86. *
  87. * The file system startup message is linked into a device node's startup
  88. * field.  It contains a pointer to the above environment, plus the
  89. * information needed to do an exec OpenDevice().
  90. *
  91.  
  92.  STRUCTURE FileSysStartupMsg,0
  93.     ULONG    fssm_Unit    ; exec unit number for this device
  94.     BSTR    fssm_Device    ; null terminated bstring to the device name
  95.     BPTR    fssm_Environ    ; ptr to environment table (see above)
  96.     ULONG    fssm_Flags    ; flags for OpenDevice()
  97.     LABEL    FileSysStartupMsg_SIZEOF
  98.  
  99.  
  100. * The include file "libraries/dosextens.h" has a DeviceList structure.
  101. * The "device list" can have one of three different things linked onto
  102. * it.  Dosextens defines the structure for a volume.  DLT_DIRECTORY
  103. * is for an assigned directory.     The following structure is for
  104. * a dos "device" (DLT_DEVICE).
  105.  
  106.  STRUCTURE DeviceNode,0
  107.     BPTR    dn_Next        ; singly linked list
  108.     ULONG    dn_Type        ; always 0 for dos "devices"
  109.     CPTR    dn_Task        ; standard dos "task" field.  If this is
  110.                 ;     null when the node is accesses, a task
  111.                 ;     will be started up
  112.     BPTR    dn_Lock        ; not used for devices -- leave null
  113.     BSTR    dn_Handler    ; filename to loadseg (if seglist is null)
  114.     ULONG    dn_StackSize    ; stacksize to use when starting task
  115.     LONG    dn_Priority    ; task priority when starting task
  116.     BPTR    dn_Startup    ; startup msg: FileSysStartupMsg for disks
  117.     BPTR    dn_SegList    ; code to run to start new task (if necessary).
  118.                 ;     if null then dn_Handler will be loaded.
  119.     BPTR    dn_GlobalVec    ; BCPL global vector to use when starting
  120.                 ;     a task.  -1 means that dn_SegList is not
  121.                 ;     for a bcpl program, so the dos won't
  122.                 ;     try and construct one.  0 tell the
  123.                 ;     dos that you obey BCPL linkage rules,
  124.                 ;     and that it should construct a global
  125.                 ;     vector for you.
  126.     BSTR    dn_Name        ; the node name, e.g. '\3','D','F','3'
  127.     LABEL    DeviceNode_SIZEOF
  128.  
  129.     ENDC    ; DOS_FILEHANDLER_I
  130.